    import java.util.*;

    class Solution {
        public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

            ListNode ret = new ListNode(0);
            ListNode cur = ret;
            while (list1 != null && list2 != null) {
                if (list1.val <= list2.val) {
                    cur.next = list1;
                    cur = cur.next;
                    list1 = list1.next;
                } else {
                    cur.next = list2;
                    cur = cur.next;
                    list2.next = list1;
                }
            }
            if (list1 == null) {
                while (list2 != null) {
                    cur.next = list2;
                    cur = cur.next;
                    list2 = list2.next;
                }
            }else{
                while (list1 != null) {
                    cur.next = list1;
                    cur = cur.next;
                    list1 = list1.next;
                }
            }
            return ret.next;
        }
    }
